//
//  FeedbackTool.m
//  FeedBackDemo
//
//  Created by sanfang on 16/11/24.
//  Copyright © 2016年 ziz. All rights reserved.
//

#import "FeedbackTool.h"


#import <YWFeedbackFMWK/YWFeedbackKit.h>
#import "TWMessageBarManager.h"

/**
 *  修改为你自己的appkey。
 *  同时，也需要替换yw_1222.jpg这个安全图片。
 */
static NSString * const kAppKey = @"23015524";
static FeedbackTool *sharedInstance = nil;

@interface FeedbackTool ()

@property (nonatomic, strong) YWFeedbackKit *feedbackKit;

@end

@implementation FeedbackTool


+(instancetype)sharedTool
{
    static dispatch_once_t onceToken;
    dispatch_once(&onceToken, ^{
        sharedInstance = [[FeedbackTool alloc]init];
    });
    return sharedInstance;
}

#pragma mark - methods
/** 打开用户反馈页面 */
- (void)openFeedbackViewController:(XXCompleteBlock)aCallback
{
    //  初始化方式,或者参考下方的`- (YWFeedbackKit *)feedbackKit`方法。
    //    self.feedbackKit = [[YWFeedbackKit alloc] initWithAppKey:kAppKey];
    
    /** 设置App自定义扩展反馈数据 */
    self.feedbackKit.extInfo = @{@"loginTime":[[NSDate date] description],
                                 @"visitPath":@"登陆->关于->反馈",
                                 @"userid":@"yourid",
                                 @"应用自定义扩展信息":@"开发者可以根据需要设置不同的自定义信息，方便在反馈系统中查看"};
    
    //调起
    [self.feedbackKit makeFeedbackViewControllerWithCompletionBlock:^(YWFeedbackViewController *viewController, NSError *error) {
        if (viewController != nil) {
            aCallback(viewController);
        }
    }];
    
    /** 使用自定义的方式抛出error */
    [self.feedbackKit setYWFeedbackViewControllerErrorBlock:^(YWFeedbackViewController *viewController, NSError *error) {
                    NSString *title = [error.userInfo objectForKey:@"msg"]?:@"接口调用失败，请保持网络通畅！";
                    [[TWMessageBarManager sharedInstance] showMessageWithTitle:title
                                                                   description:[NSString stringWithFormat:@"%ld", error.code]
                                                                        type:TWMessageBarMessageTypeError];
    }];
}


#pragma mark getter
- (YWFeedbackKit *)feedbackKit {
    if (!_feedbackKit) {
        _feedbackKit = [[YWFeedbackKit alloc] initWithAppKey:kAppKey];
        
    }
    return _feedbackKit;
}
@end
